home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
patches
/
ip20t21a.lha
/
IFX20to21a_Patch
/
Install_Extras_2.1a
< prev
next >
Wrap
Text File
|
1995-11-10
|
11KB
|
370 lines
; ImageFX 2.1a Extras Patch Install Script
;
; Written by Thomas Krehbiel
;
; Copyright © 1995 Nova Design, Inc.
; All Rights Reserved
(
;================================================================
; Procedure Definitions
;================================================================
(procedure RunLhex
; pf_archive = name of archive to extract from
; pf_name = name of file to extract
; tempdir = directory to extract to
(
(set pf_error
(run
("RAM:lhex -a -f \"-w=%s\" x %s %s"
tempdir
pf_archive
pf_name
)
)
)
)
)
(procedure RunPatch
; pf_old = old version of file
; pf_new = where to put new version of file
; pf_patch = name of patch file
(
(set pf_error
(run
("RAM:spatch \"-o%s\" \"-p%s\" \"%s\""
pf_new
pf_patch
pf_old
)
)
)
)
)
(procedure DoPatch
; pf_name = name of file with path
; wheredir = where old files reside
; patchdir = where patches reside
(
(set pf_user (tackon wheredir pf_name))
(set pf_old (tackon tempdir pf_name))
(set pf_new ("%s.new" (tackon wheredir pf_name)))
(set pf_patch ("%s.pch" (tackon patchdir pf_name)))
(if (exists pf_user)
(
; only if it was installed
(working "Reading " pf_archive)
(RunLhex)
(if pf_error
(
(message "LHEX failed on `" pf_archive "'.")
)
)
(working "Updating " pf_name)
(RunPatch)
(if pf_error
(
(message "Patch failed on file `" pf_user "'.")
)
; else
(
(delete pf_user)
(rename pf_new pf_user)
)
)
(delete pf_old)
)
)
)
)
;================================================================
; Setup
;================================================================
; script variables...
(set versionname "2.1a") ; version number
(set programname ("ImageFX Extras %s" versionname)) ; name of program
(set diskname1 "ImageFX_Disk1:") ; install disk name
(set diskname2 "ImageFX_Disk2:") ; second install disk name
(set diskname3 "ImageFX_Disk3:") ; third install disk name
(set diskname4 "ImageFX_Disk4:") ; fourth install disk name
(set pdiskname1 "") ; patch install disk name
(set pdiskname2 "") ; patch install disk 2 name
(set tempdir "T:")
; system information...
(set osver (/ (getversion) 65536)) ; os version
(set cputype (database "cpu")) ; cpu type
;-------------------
; Pick a default directory for the installation...
(set initialdir @default-dest) ; defaults to biggest drive
(if (getassign "ImageFX")
(
(set initialdir (getassign "ImageFX"))
)
; else
(
(if (getassign "ImageFX2")
(
(set initialdir (getassign "ImageFX2"))
; if we found ImageFX2:, assume user wants to keep ImageFX2:
(set assignname "ImageFX2")
)
)
)
)
;-------------------
; Warn user.
(message "These 'extras' were either not created by Nova Design, Inc., "
"or are based on software not created or supported by Nova Design. "
"Because of this, Nova Design cannot provide technical support for these extras. "
"They are provided for your amusement only; use them at your own risk. "
"If you do not want to install them, click `Abort Install' now.")
(set tryagain 1)
(while tryagain
(
(set tryagain 0)
;-------------------
; Ask where to install it...
;(set wheredir initialdir)
(set wheredir
(askdir
(prompt "Select the directory where ImageFX is currently installed. The extras in "
"this directory will be updated to version " versionname ". All of your "
"preferences will be preserved. NOTE: You will need your original ImageFX 2.0 "
"disks to apply this update.")
(help @askdir-help)
(default initialdir)
)
)
;-------------------
; Make sure it's a valid ImageFX
(set checkvar 0)
(set checkvar (+ checkvar (exists (tackon wheredir "Modules/Sys/Scale"))))
(set checkvar (+ checkvar (exists (tackon wheredir "Hooks/Sys/PaintFX"))))
(if (= 0 checkvar)
(
(message "`" wheredir "' does not appear to contain a copy of ImageFX 2.0.")
(set tryagain 1)
(set initialdir wheredir)
)
)
)
)
(message "The " programname " update will be installed in the drawer `" wheredir "'. If this is correct, click `Proceed'.")
(set @default-dest wheredir)
;-------------------
; Ask which versions of modules the user wants to install.
;(set cpu
; (askchoice
; (prompt "Select which versions of hooks and modules you would "
; "like to install:")
; (help "Some ImageFX hooks and modules (such as the JPEG modules) "
; "have alternate versions optimized for faster processors. "
; "You may choose to install only the modules optimized for "
; "the processor in your machine to save hard drive space.")
; (choices
; "For Any Processor"
; "For 68000 Or 68010"
; "For 68020 Or 68030, No Floating Point"
; "For 68020 Or 68030, With Floating Point"
; "For 68040, With Floating Point"
; )
; (default 0)
; )
;)
;-------------------
; Ask which components to install
(set todo
(askoptions
(prompt "Select the " versionname " Extras you would like to install "
"(Extras that are installed from previous versions of ImageFX "
"will be updated automatically):")
(help "Check the boxes to indicate which extras you would like "
"installed on your system.")
(choices
"CyberGraphics Render Module"
"JSTREAM Loader & Saver Modules"
)
)
)
(set mask_cyber 1)
(set mask_jstream 2)
;================================================================
; PATCH EXISTING FILES
;================================================================
;-------------------
; Copy SPATCH to RAM: for speediness
(copyfiles
(prompt "")
(help "")
(source pdiskname1)
(dest "RAM:")
(choices "spatch")
)
;================================================================
; DISK 1
;================================================================
(askdisk
(prompt "Please insert ImageFX 2.0 Disk 1 in any drive.")
(help "")
(dest (substr diskname1 0 (- (strlen diskname1) 1)))
(assigns)
)
;-------------------
; Copy LHEX to RAM: for speediness
(copyfiles
(prompt "")
(help "")
(source diskname1)
(dest "RAM:")
(choices "lhex")
)
;-------------------
; Begin by extracting our patch archive into the user's
; chosen ImageFX directory. This will be deleted at the end.
(working "Extracting Update Files...")
(set patchdir (tackon wheredir "PatchesX"))
(makedir patchdir)
(if (= 0 (exists (tackon pdiskname1 "PatchesX.lha")))
(
(set pdiskname2 "IFX_20to21a_Disk2:") ; patch install disk 2 name
(askdisk
(prompt "Please insert ImageFX Patch Disk 2 in any drive.")
(help "")
(dest (substr pdiskname2 0 (- (strlen pdiskname2) 1)))
(assigns)
)
)
)
(run
("RAM:lhex >CON:0/0//80/lhex/AUTO -a -f \"-w=%s\" x %s"
patchdir
(tackon pdiskname2 "PatchesX.lha")
)
)
;================================================================
; DISK 4
;================================================================
; only patch postscript if it's there already
(if (exists (tackon wheredir "Modules/Loaders/PostScript"))
(
(askdisk
(prompt "Please insert ImageFX 2.0 Disk 4 in any drive.")
(help "")
(dest (substr diskname4 0 (- (strlen diskname4) 1)))
(assigns)
)
; copy hooks.lha to ram for speed
(copyfiles
(prompt "")
(help "")
(source diskname4)
(dest tempdir)
(choices "Extras1.lha")
)
(set pf_archive (tackon tempdir "Extras1.lha"))
(set pf_name "Modules/Loaders/PostScript") (DoPatch)
(delete (tackon tempdir "Extras1.lha"))
(run ("delete %s all quiet" (tackon tempdir "Modules")))
)
)
;================================================================
; INSTALL NEW FILES
;================================================================
; don't need these any more
(delete "RAM:spatch")
(delete "RAM:lhex")
(if (BITAND mask_cyber todo)
(
(copyfiles
(prompt "")
(help "")
(source (tackon patchdir "Modules/Render"))
(dest (tackon wheredir "Modules/Render"))
(choices "CyberGraphics.000" "CyberGraphics.030")
)
)
)
(if (BITAND mask_jstream todo)
(
(copyfiles
(prompt "")
(help "")
(source (tackon patchdir "Modules/Loaders"))
(dest (tackon wheredir "Modules/Loaders"))
(choices "JSTREAM.000" "JSTREAM.030" "JSTREAM.040")
)
(copyfiles
(prompt "")
(help "")
(source (tackon patchdir "Modules/Savers"))
(dest (tackon wheredir "Modules/Savers"))
(choices "JSTREAM.000" "JSTREAM.030" "JSTREAM.040")
)
(copyfiles
(prompt "")
(help "")
(source (tackon patchdir "Help"))
(dest (tackon wheredir "Help"))
(choices "JStream.guide" "JStream.guide.info")
)
)
)
; delete the patches
(run ("delete %s all quiet" patchdir))
; Installation complete!
)
; Revision History:
;
; 14.04.95 tek Created for Beta 2 release.
; 07.11.95 tek Updated for 2.0 -> 2.1a patch operation.